package main.java.com.jlpay.open.jlpay.sdk.java.model.openmerch.device;

import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import lombok.*;

/**
 * 设备信息
 *
 * @author liaochangyi
 * @since 2024/12/28
 */
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
public class DeviceInfo {

    /**
     * 设备硬件序列号（SN）
     */
    private String deviceNo;

    /**
     * 终端编号
     */
    private String termNo;

    /**
     * 商户号
     */
    private String merchNo;

    /**
     * 状态
     * 0：待启用（适用于设备类型为02，04，05，加机成功后终端未签到成功前）
     * 1：启用（终端可做支付交易）
     * 2：停用（终端不可做支付交易，停用可以变更为启用）
     * 3：注销（解除终端与商户的绑定关系，注销后终端无法再启用）
     */
    private String status;

    /**
     * 设备型号
     */
    private String model;

    /**
     * 设备类型
     * 02：传统POS
     * 04：智能POS
     * 05：智能POS
     * AD：音响
     * CD：收银台
     * EP：电子码牌
     * PT：打印机
     * QR：码付设备
     * SP：立牌（实体码牌）
     */
    private String deviceType;

    /**
     * 供应商
     */
    private String supplier;

    /**
     * 商户名称
     */
    private String merchName;

    /**
     * 打印商户名称
     * 签购单上的商户名称，适用于设备类型为02，04，05
     */
    private String printMerchName;

    /**
     * 地址
     */
    private String address;

    /**
     * 加机时间，yyyy-mm-dd HH:mm:ss
     */
    private String installTime;

    /**
     * 更新时间，yyyy-mm-dd HH:mm:ss
     */
    private String updateTime;
} 